.rc-image {
  display: inline-flex;
  position: relative;
}
.rc-image-img {
  width: 100%;
  height: auto;
}
.rc-image-img-placeholder {
  background-color: #f3f3f3;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url();
}
.rc-image-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.rc-image-mask {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: opacity 0.3s;
}
.rc-image:hover .rc-image-mask {
  opacity: 1;
}
.rc-image-preview {
  text-align: center;
  height: 100%;
  pointer-events: none;
}
.rc-image-preview-body {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
}
.rc-image-preview.zoom-enter,
.rc-image-preview.zoom-appear {
  transform: none;
  opacity: 0;
  animation-duration: 0.3s;
}
.rc-image-preview-mask {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.45);
}
.rc-image-preview-mask-hidden {
  display: none;
}
.rc-image-preview-img {
  cursor: grab;
  transform: scale3d(1, 1, 1);
  transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
  user-select: none;
  vertical-align: middle;
  max-width: 100%;
  max-height: 100%;
  pointer-events: auto;
}
.rc-image-preview-img-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.rc-image-preview-img-wrapper::before {
  content: '';
  display: inline-block;
  height: 50%;
  width: 1px;
  margin-right: -1px;
}
.rc-image-preview-moving .rc-image-preview-img {
  cursor: grabbing;
}
.rc-image-preview-moving .rc-image-preview-img-wrapper {
  transition-duration: 0s;
}
.rc-image-preview-wrap {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1000;
  overflow: auto;
  outline: 0;
  -webkit-overflow-scrolling: touch;
}
.rc-image-preview-operations-wrapper {
  position: fixed;
  z-index: 1001;
}
.rc-image-preview-operations {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  pointer-events: auto;
  list-style: none;
  position: fixed;
  display: flex;
  top: 0;
  right: 0;
  width: 100%;
  align-items: center;
  flex-direction: row-reverse;
  z-index: 1001;
  color: #bbb;
  background: rgba(0, 0, 0, 0.45);
}
.rc-image-preview-operations-progress {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.rc-image-preview-operations-operation {
  padding: 10px;
  cursor: pointer;
  margin-left: 10px;
}
.rc-image-preview-operations-operation-disabled {
  pointer-events: none;
  color: #6e6e6e;
}
.rc-image-preview-operations-operation:last-of-type {
  margin-left: 0;
}
.rc-image-preview-operations-icon {
  font-size: 18px;
}
.rc-image-preview-switch-left {
  position: fixed;
  left: 10px;
  top: 50%;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  background: rgba(187, 187, 187, 0.45);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1001;
  pointer-events: auto;
  cursor: pointer;
  color: #bbb;
}
.rc-image-preview-switch-left-disabled {
  background: rgba(187, 187, 187, 0.3);
  color: #6e6e6e;
  cursor: not-allowed;
}
.rc-image-preview-switch-left-disabled > .anticon {
  cursor: not-allowed;
}
.rc-image-preview-switch-left > .anticon {
  font-size: 24px;
}
.rc-image-preview-switch-right {
  position: fixed;
  right: 10px;
  top: 50%;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  background: rgba(187, 187, 187, 0.45);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1001;
  pointer-events: auto;
  cursor: pointer;
  color: #bbb;
}
.rc-image-preview-switch-right-disabled {
  background: rgba(187, 187, 187, 0.2);
  color: #6e6e6e;
  cursor: not-allowed;
}
.rc-image-preview-switch-right-disabled > .anticon {
  cursor: not-allowed;
}
.rc-image-preview-switch-right > .anticon {
  font-size: 24px;
}
.fade-enter,
.fade-appear {
  animation-duration: 0.3s;
  animation-fill-mode: both;
  animation-play-state: paused;
}
.fade-leave {
  animation-duration: 0.3s;
  animation-fill-mode: both;
  animation-play-state: paused;
}
.fade-enter.fade-enter-active,
.fade-appear.fade-appear-active {
  animation-name: rcImageFadeIn;
  animation-play-state: running;
}
.fade-leave.fade-leave-active {
  animation-name: rcImageFadeOut;
  animation-play-state: running;
  pointer-events: none;
}
.fade-enter,
.fade-appear {
  opacity: 0;
  animation-timing-function: linear;
}
.fade-leave {
  animation-timing-function: linear;
}
@keyframes rcImageFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes rcImageFadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.zoom-enter,
.zoom-appear {
  animation-duration: 0.3s;
  animation-fill-mode: both;
  animation-play-state: paused;
}
.zoom-leave {
  animation-duration: 0.3s;
  animation-fill-mode: both;
  animation-play-state: paused;
}
.zoom-enter.zoom-enter-active,
.zoom-appear.zoom-appear-active {
  animation-name: rcImageZoomIn;
  animation-play-state: running;
}
.zoom-leave.zoom-leave-active {
  animation-name: rcImageZoomOut;
  animation-play-state: running;
  pointer-events: none;
}
.zoom-enter,
.zoom-appear {
  transform: scale(0);
  opacity: 0;
  animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
}
.zoom-leave {
  animation-timing-function: cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
@keyframes rcImageZoomIn {
  0% {
    transform: scale(0.2);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes rcImageZoomOut {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.2);
    opacity: 0;
  }
}
